security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } header('Content-Type: text/html; charset=utf-8'); if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //debug_var(); // Initialisation des variables utilisées dans le formulaire $chemin_retour=isset($_GET['chemin_retour']) ? $_GET['chemin_retour'] : (isset($_POST['chemin_retour']) ? $_POST["chemin_retour"] : NULL); $ancre=isset($_GET['ancre']) ? $_GET['ancre'] : (isset($_POST['ancre']) ? $_POST["ancre"] : NULL); $id_classe = isset($_GET['id_classe']) ? $_GET['id_classe'] : (isset($_POST['id_classe']) ? $_POST["id_classe"] : NULL); $id_groupe = isset($_GET['id_groupe']) ? $_GET['id_groupe'] : (isset($_POST['id_groupe']) ? $_POST["id_groupe"] : NULL); if (!is_numeric($id_groupe)) {$id_groupe = 0;} $current_group = get_group($id_groupe); if(!isset($current_group["name"])) { header("Location: ../accueil.php?msg=Le groupe n°$id_groupe n'existe pas."); die(); } $reg_nom_groupe = $current_group["name"]; $reg_nom_complet = $current_group["description"]; $reg_matiere = $current_group["matiere"]["matiere"]; $reg_id_classe = $current_group["classes"]["list"][0]; $reg_clazz = $current_group["classes"]["list"]; $reg_professeurs = (array)$current_group["profs"]["list"]; //================================ $invisibilite_groupe=array(); $sql="SELECT jgv.* FROM j_groupes_visibilite jgv WHERE id_groupe='$id_groupe' AND jgv.visible='n';"; $res_jgv=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_jgv)>0) { while($lig_jgv=mysqli_fetch_object($res_jgv)) { $invisibilite_groupe[]=$lig_jgv->domaine; } } //================================ /* foreach($reg_clazz as $key => $value) { echo "\$reg_clazz[$key]=$value
"; } */ $mode = isset($_GET['mode']) ? $_GET['mode'] : (isset($_POST['mode']) ? $_POST["mode"] : null); if ($mode == null and $id_classe == null) { $mode = "groupe"; if ((isset($current_group["classes"]["list"]))&&(count($current_group["classes"]["list"]) > 1)) { $mode = "regroupement"; } } else if ($mode == null and $current_group) { if (count($current_group["classes"]["list"]) > 1) { $mode = "regroupement"; } else { $mode = "groupe"; } } foreach ($current_group["periodes"] as $period) { $reg_eleves[$period["num_periode"]] = $current_group["eleves"][$period["num_periode"]]["list"]; } function afficher_liste_profs_du_groupe($reg_matiere) { global $current_group, $p, $prof_list, $mode, $themessage, $reg_professeurs, $id_classe; // Récupération du prof principal $tab_prof_suivi=array(); $nb_prof_suivi=0; if(isset($id_classe)) { $tab_prof_suivi=get_tab_prof_suivi($id_classe); $nb_prof_suivi=count($tab_prof_suivi); if($nb_prof_suivi>1) { $liste_prof_suivi=""; for($loop=0;$loop0) {$liste_prof_suivi.=", ";} $liste_prof_suivi.=civ_nom_prenom($tab_prof_suivi[$loop]); } } $gepi_prof_suivi=getParamClasse($id_classe, 'gepi_prof_suivi', getSettingValue('gepi_prof_suivi')); } else { $gepi_prof_suivi=getSettingValue('gepi_prof_suivi'); } $sql="SELECT u.login, u.nom, u.prenom, u.civilite, u.statut FROM utilisateurs u, j_professeurs_matieres j WHERE (j.id_matiere = '$reg_matiere' and j.id_professeur = u.login and u.etat!='inactif') ORDER BY u.nom;"; //echo "$sql
"; $calldata = mysqli_query($GLOBALS["mysqli"], $sql); $nb = mysqli_num_rows($calldata); $prof_list = array(); $prof_list["list"] = array(); for ($i=0;$i<$nb;$i++) { $prof_login = old_mysql_result($calldata, $i, "login"); $prof_nom = old_mysql_result($calldata, $i, "nom"); $prof_prenom = old_mysql_result($calldata, $i, "prenom"); $civilite = old_mysql_result($calldata, $i, "civilite"); $prof_statut = old_mysql_result($calldata, $i, "statut"); $prof_list["list"][] = $prof_login; $prof_list["users"][$prof_login] = array("login" => $prof_login, "nom" => casse_mot($prof_nom,'maj'), "prenom" => casse_mot($prof_prenom,'majf2'), "civilite" => $civilite, "statut" => $prof_statut); } if (count($prof_list["list"]) == "0") { echo "

ERREUR ! Aucun professeur n'a été défini comme compétent dans la matière considérée.
Associer des professeurs à $reg_matiere

\n"; } else { $total_profs = array_merge($prof_list["list"], $reg_professeurs); $total_profs = array_unique($total_profs); $p = 0; echo "\n"; $temoin_nettoyage_requis='n'; foreach($total_profs as $prof_login) { if((isset($prof_list["users"][$prof_login]["statut"]))&&($prof_list["users"][$prof_login]["statut"]=='professeur')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $p++; } else { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } } echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo " checked />\n"; echo "\n"; echo "\n"; } } else { echo " />\n"; echo "\n"; echo ""; } if(in_array($prof_login,$tab_prof_suivi)) { echo " 1) {echo " La liste des ".$gepi_prof_suivi." est ".$liste_prof_suivi.".";} echo "\" />\n"; } echo "
\n"; echo "
\n"; echo "  "; echo "\n"; echo "ANOMALIE :"; //echo " " . $prof_list["users"][$prof_login]["nom"] . " " . $prof_list["users"][$prof_login]["prenom"]; echo " ".civ_nom_prenom($prof_login).""; if(isset($prof_list["users"][$prof_login]["statut"])) { echo " (compte ".$prof_list["users"][$prof_login]["statut"].")"; } echo "
\n"; $temoin_nettoyage_requis='y'; //echo "Un nettoyage des tables s'impose."; echo "
\n"; if($temoin_nettoyage_requis!='n') { echo "Un nettoyage des tables s'impose."; } echo "
Cocher / décocher tous les professeurs ci-dessus. "; if ($mode == "groupe") { echo "



"; } else { echo "



"; } } } if((isset($_GET['maj_liste_profs_matiere']))&&(isset($_GET['matiere']))) { check_token(false); $matiere=$_GET['matiere']; afficher_liste_profs_du_groupe($matiere); die(); } if((isset($_GET['maj_liste_autres_groupes_meme_matiere']))&&(isset($_GET['matiere']))&&(isset($_GET['id_classe']))) { check_token(false); $matiere=$_GET['matiere']; $id_classe=$_GET['id_classe']; $avec_lien_edit_group="y"; $tab_autres_groupes=tableau_html_groupe_matiere_telle_classe($id_classe, $matiere, array($id_groupe)); if($tab_autres_groupes!="") { echo "

Il existe d'autres enseignements dans la même matière pour cette classe :

\n"; echo $tab_autres_groupes; echo "

Répartir les élèves entre plusieurs groupes

"; } else { echo ""; } die(); } if (isset($_POST['is_posted'])) { check_token(); $msg=""; $error = false; //======================================= // MODIF: boireaus /* $reg_nom_groupe = $_POST['groupe_nom_court']; $reg_nom_complet = $_POST['groupe_nom_complet']; */ //$reg_nom_groupe = html_entity_decode($_POST['groupe_nom_court']); $reg_nom_groupe = html_entity_decode($_POST['groupe_nom_court'],ENT_QUOTES,"UTF-8"); //$reg_nom_complet = html_entity_decode($_POST['groupe_nom_complet']); $reg_nom_complet = html_entity_decode($_POST['groupe_nom_complet'],ENT_QUOTES,"UTF-8"); //======================================= $reg_matiere = $_POST['matiere']; if (empty($reg_nom_groupe)) { $error = true; $msg .= "Vous devez donner un nom court au groupe.
\n"; } if (empty($reg_nom_groupe)) { $error = true; $msg .= "Vous devez donner un nom complet au groupe.
\n"; } $clazz = array(); // Classes if ($_POST['mode'] == "groupe") { // Ajout sécurité: if((!isset($id_classe))||($id_classe=='')) {$id_classe=$current_group['classes']['list'][0];} $clazz[] = $id_classe; $reg_id_classe = $id_classe; $mode = "groupe"; } else if ($_POST['mode'] == "regroupement") { $mode = "regroupement"; foreach ($_POST as $key => $value) { if (preg_match("/^classe\_/", $key)) { $temp = explode("_", $key); $id = $temp[1]; $clazz[] = $id; } } foreach ($_POST as $key => $value) { if (preg_match("/^precclasse\_/", $key)) { $temp = explode("_", $key); $tmpid = $temp[1]; // On vérifie si la classe a été décochée: if(!isset($_POST['classe_'.$tmpid])){ // On vérifie si l'identifiant de classe $tmpid peut être décoché. unset($tabtmp); $tabtmp=array(); $test=0; $test2=0; $sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$tmpid'"; $res_tmp=mysqli_query($GLOBALS["mysqli"], $sql); while($lig_tmp=mysqli_fetch_object($res_tmp)){ $sql="SELECT 1=1 FROM matieres_notes WHERE id_groupe='$id_groupe' AND login='$lig_tmp->login'"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ //echo "$lig_tmp->login
\n"; if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;} $test++; } $sql="SELECT 1=1 FROM matieres_appreciations WHERE id_groupe='$id_groupe' AND login='$lig_tmp->login'"; //echo "$sql
\n"; $res_test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_test)>0){ //echo "$lig_tmp->login
\n"; if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;} $test2++; } } $sql="SELECT classe FROM classes WHERE id='$tmpid'"; $res_tmp=mysqli_query($GLOBALS["mysqli"], $sql); $lig_tmp=mysqli_fetch_object($res_tmp); $clas_tmp=$lig_tmp->classe; //if(!$verify){ if(($test>0)||($test2>0)){ /* $sql="SELECT classe FROM classes WHERE id='$tmpid'"; $res_tmp=mysql_query($sql); $lig_tmp=mysql_fetch_object($res_tmp); $clas_tmp=$lig_tmp->classe; */ $error = true; $msg .= "Des données existantes bloquent la suppression de la classe $clas_tmp du groupe.
\nAucune note ni appréciation du bulletin ne doit avoir été saisie pour les élèves de ce groupe pour permettre la suppression du groupe.
\n"; if(count($tabtmp)==1){ $msg.="L'élève ayant des moyennes ou appréciations saisies est $tabtmp[0].
\n"; } else{ $msg.="Les élèves ayant des moyennes ou appréciations saisies sont $tabtmp[0]"; for($i=1;$i\n"; $res_ele_clas_grp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele_clas_grp)>0){ $error = true; $msg .= "Des données existantes bloquent la suppression de la classe $clas_tmp du groupe.
\nAucun élève de la classe ne doit être inscrit dans le groupe.
\nEnlevez les élèves du groupe avant.
\n"; // Et on remet la classe dans la liste des classes: $clazz[] = $tmpid; } } } } } } // On ajoute un test pour s'assurer qu'on n'a pas un tableau vide pour les classes if (count($clazz) == 0) { $clazz[0] = $id_classe; } for($loo=0;$loo"; $suppr=mysqli_query($GLOBALS["mysqli"], $sql); if(!$suppr) {$msg.="Erreur lors de la suppression de l'invisibilité du groupe n°".$id_groupe." sur les ".$tab_domaines_texte[$loo].".
";} } } else { if($visibilite_groupe_domaine_courant=='n') { $sql="INSERT j_groupes_visibilite SET id_groupe='".$id_groupe."', domaine='".$tab_domaines[$loo]."', visible='n';"; //echo "$sql
"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$id_groupe." sur les ".$tab_domaines_texte[$loo].".
";} } } } // Professeurs $reg_professeurs = array(); foreach ($_POST as $key => $value) { if (preg_match("/^prof\_/", $key)) { $id = preg_replace("/^prof\_/", "", $key); $proflogin = $_POST["proflogin_".$id]; // Normalement on a un traitement anti-injection sur $_POST, donc pas de soucis. // Mais ça serait bien de faire un test quand même. Si un dev passe par là... //$reg_professeurs[] = $proflogin; $sql="SELECT 1=1 FROM j_professeurs_matieres WHERE id_professeur='$proflogin' AND id_matiere='$reg_matiere';"; $test_prof_matiere=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_prof_matiere)>0) { $reg_professeurs[] = $proflogin; } } } $reg_clazz = $clazz; if(isset($_POST['associer_tous_les_profs_de_la_classe'])) { for($loo=0;$loo0) { while($lig_prof=mysqli_fetch_object($res_prof)) { if(!in_array($lig_prof->login, $reg_professeurs)) { $reg_professeurs[]=$lig_prof->login; } } } } } if(isset($_POST['associer_tous_les_profs_de_l_etablissement'])) { $sql="SELECT login FROM utilisateurs WHERE statut='professeur' AND etat='actif';"; $res_prof=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_prof)>0) { while($lig_prof=mysqli_fetch_object($res_prof)) { if(!in_array($lig_prof->login, $reg_professeurs)) { $reg_professeurs[]=$lig_prof->login; } } } } if(isset($_POST['associer_pp_de_la_classe'])) { for($loo=0;$loo0) { while($lig_prof=mysqli_fetch_object($res_prof)) { if(!in_array($lig_prof->login, $reg_professeurs)) { $reg_professeurs[]=$lig_prof->login; } } } } } $tab_profs_matiere=array(); $sql="SELECT DISTINCT id_professeur FROM j_professeurs_matieres WHERE id_matiere='$reg_matiere';"; $res_prof_matiere=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_prof_matiere)>0){ while($lig_prof_matiere=mysqli_fetch_object($res_prof_matiere)){ $tab_profs_matiere[]=$lig_prof_matiere->id_professeur; } } // On vérifie que les profs de la liste sont bien associés à la matière: for($loo=0;$loo"; $res_ordre=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ordre)==0) { $ordre_matiere=1; } else { $ordre_matiere=old_mysql_result($res_ordre, 0, "max_ordre_matiere")+1; } $sql="INSERT INTO j_professeurs_matieres SET id_professeur='".$reg_professeurs[$loo]."', id_matiere='$reg_matiere', ordre_matieres='$ordre_matiere';"; //echo "$sql
"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } } // 20160419 //$code_modalite_elect=isset($_POST['code_modalite_elect']) ? $_POST['code_modalite_elect'] : array(); $code_modalite_elect_eleves=$current_group["modalites"]; /* echo "Apres modif:
"; foreach($reg_clazz as $key => $value) { echo "\$reg_clazz[$key]=$value
"; } */ if (empty($reg_clazz)) { $error = true; $msg .= "Vous devez sélectionner au moins une classe.
\n"; } if (!$error) { // pas d'erreur : on continue avec la mise à jour du groupe //$create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves); $create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves, $code_modalite_elect_eleves); if (!$create) { $msg .= "Erreur lors de la mise à jour du groupe."; } else { //====================================== // MODIF: boireaus //$msg = "Le groupe a bien été mis à jour."; $msg = "Enseignement ". stripslashes($reg_nom_complet) . " bien mis à jour.
"; if(isset($_POST['creer_sous_groupes'])) { if((!isset($_POST['nb_sous_groupes_a_creer']))||($_POST['nb_sous_groupes_a_creer']=='')||(!preg_match("/^[0-9]*$/", $_POST['nb_sous_groupes_a_creer']))||($_POST['nb_sous_groupes_a_creer']<1)) { $msg.="Erreur : Le nombre de sous-groupes demandés est invalide.
"; } else { //20130912 $reg_categorie à récupérer... $current_group=get_group($id_groupe); $reg_categorie=$current_group["classes"]["classes"][$reg_clazz[0]]["categorie_id"]; $nb_sous_groupes_a_creer=$_POST['nb_sous_groupes_a_creer']; $suffixe_sous_groupe_a_creer=isset($_POST['suffixe_sous_groupe_a_creer']) ? $_POST['suffixe_sous_groupe_a_creer'] : ""; for($loop=0;$loop<$nb_sous_groupes_a_creer;$loop++) { $reg_nom_sous_groupe=$reg_nom_groupe; $reg_nom_complet_sous_groupe=$reg_nom_complet; if($suffixe_sous_groupe_a_creer=="1") { $reg_nom_sous_groupe.="_".($loop+1); $reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".($loop+1).")"; } elseif($suffixe_sous_groupe_a_creer=="g1") { $reg_nom_sous_groupe.="_g".($loop+1); $reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".($loop+1).")"; } elseif($suffixe_sous_groupe_a_creer=="A") { $alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $reg_nom_sous_groupe.="_".substr($alphabet, $loop, 1); $reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".substr($alphabet, $loop, 1).")"; } $create = create_group($reg_nom_sous_groupe, $reg_nom_complet_sous_groupe, $reg_matiere, $reg_clazz, $reg_categorie); if (!$create) { $msg .= "Erreur lors de la création du sous-groupe $reg_nom_sous_groupe.
"; } else { // Puis mise à jour avec la liste des élèves, la visibilité $id_sous_groupe=$create; // Visibilité du sous-groupe for($loo=0;$loo"; $suppr=mysqli_query($GLOBALS["mysqli"], $sql); if(!$suppr) {$msg.="Erreur lors de la suppression de l'invisibilité du groupe n°".$id_sous_groupe." sur les ".$tab_domaines_texte[$loo].".
";} } } else { if($visibilite_groupe_domaine_courant=='n') { $sql="INSERT j_groupes_visibilite SET id_groupe='".$id_sous_groupe."', domaine='".$tab_domaines[$loo]."', visible='n';"; //echo "$sql
"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$id_sous_groupe." sur les ".$tab_domaines_texte[$loo].".
";} } } } // Elèves du sous-groupe $reg_eleves_sous_groupe=array(); if($nb_sous_groupes_a_creer==1) { $reg_eleves_sous_groupe=$reg_eleves; } else { foreach ($current_group["periodes"] as $period) { $reg_eleves_sous_groupe[$period["num_periode"]]=array(); $nb_ele_restants=count($current_group["eleves"][$period["num_periode"]]["list"]); $nb_sous_groupes_restants=$nb_sous_groupes_a_creer; $rang_prec=0; $rang[-1]=0; for($loop_grp=0;$loop_grp<$nb_sous_groupes_a_creer;$loop_grp++) { $tranche[$loop_grp]=ceil($nb_ele_restants/$nb_sous_groupes_restants); $rang[$loop_grp]=$rang_prec+$tranche[$loop_grp]; $nb_ele_restants-=$tranche[$loop_grp]; $nb_sous_groupes_restants--; $rang_prec=$rang[$loop_grp]; } for($loop_ele=$rang[$loop-1];$loop_ele<$rang[$loop];$loop_ele++) { $reg_eleves_sous_groupe[$period["num_periode"]][]=$current_group["eleves"][$period["num_periode"]]["list"][$loop_ele]; } /* for($loop_ele=0;$loop_ele=$loop*$tranche+1)&& ($loop_ele+1<($loop+1)*$tranche+1)) { $reg_eleves_sous_groupe[$period["num_periode"]][]=$current_group["eleves"][$period["num_periode"]]["list"][$loop_ele]; } } */ } } $update = update_group($id_sous_groupe, $reg_nom_sous_groupe, $reg_nom_complet_sous_groupe, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves_sous_groupe); if (!$update) { $msg .= "Erreur lors de la mise à jour du sous-groupe ".$reg_nom_sous_groupe.".
"; } } } } } $msg = urlencode($msg); if(isset($chemin_retour)) { if(strstr($chemin_retour,'utilisateurs/index.php')) { // On n'arrive sur edit_group.php en venant de utilisateurs/index.php que depuis la partie Gestion de comptes utilisateurs Personnels de l'établissement if(isset($ancre)) { header("Location: $chemin_retour?&msg=$msg&mode=personnels#$ancre"); } else { header("Location: $chemin_retour?&msg=$msg&mode=personnels"); } } else { header("Location: $chemin_retour?&msg=$msg"); } } else{ header("Location: ./edit_class.php?id_classe=$id_classe&msg=$msg"); } //====================================== } $current_group = get_group($id_groupe); } } /* DEBUG echo "
\n";
print_r($_POST);
echo "
\n"; echo html_entity_decode("prof_ERIC_ALARY"); echo "
\n";
print_r($current_group);
echo "
\n"; echo "
\n";
print_r($reg_professeurs);
echo "
\n"; */ // Ajout sécurité: if((!isset($id_classe))||($id_classe=='')) {$id_classe=$current_group['classes']['list'][0];} $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ************************************** $titre_page = "Gestion des groupes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ********************************** //debug_var(); //echo "\$_SERVER['HTTP_REFERER']=".$_SERVER['HTTP_REFERER']."
\n"; /* foreach ($reg_clazz as $tmp_classe) { echo "\$tmp_classe=$tmp_classe
\n"; } */ ?>

Retour Retour | "; } else{ echo "Retour Retour | "; } //============================ echo "Exporter la composition du groupe | "; ?> Supprimer le groupe Modifier la liste des élèves"; echo " | Répartir "; /* if(count($current_group["classes"]["list"])==1) { echo " | Modifier la liste des élèves"; } elseif(count($current_group["classes"]["list"])>1) { echo " | Modifier la liste des élèves en"; $cpt_classe=0; foreach($current_group["classes"]["classes"] as $key => $value) { if($cpt_classe>0) {echo ", ";} echo " ".$value['classe'].""; $cpt_classe++; } } */ if ($mode == "groupe") { echo "

Modifier le groupe

\n"; } elseif ($mode == "regroupement") { echo "

Modifier le regroupement

\n"; } $message_nom_sur_bulletin1=""; $message_nom_sur_bulletin2=""; $message_nom_sur_bulletin3=""; $choix_nom_sur_bulletin1=""; $choix_nom_sur_bulletin2=""; $choix_nom_sur_bulletin3=""; if(getSettingValue('bul_rel_nom_matieres')=='nom_complet_matiere') { $choix_nom_sur_bulletin3=" "; $message_nom_sur_bulletin3=" "; } elseif(getSettingValue('bul_rel_nom_matieres')=='nom_groupe') { $choix_nom_sur_bulletin1=" "; $message_nom_sur_bulletin1=" "; } elseif(getSettingValue('bul_rel_nom_matieres')=='description_groupe') { $choix_nom_sur_bulletin2=" "; $message_nom_sur_bulletin2=" "; } ?>

Nom court : ".html_ajout_suffixe_ou_renommer('groupe_nom_court', 'groupe_nom_complet', 'matiere')."

"; $tabdiv_infobulle[]=creer_div_infobulle('suffixe_nom_grp',$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); echo " Suffixe"; ?>

Nom complet :

\n"; if((isset($current_group))&&(count($current_group["eleves"]["all"]["list"])==0)) { echo "Sélectionnez la classe à laquelle appartient le groupe :\n"; echo "\n"; //echo "
[-> sélectionner plusieurs classes]

\n"; echo "
\n"; } else { echo "\n"; if(isset($current_group)) { echo "Enseignement en ".$current_group['classlist_string']."."; echo "
\n"; } } echo "[-> sélectionner plusieurs classes]\n"; // On ne propose de fusionner le groupe avec un/des groupes existants que si le groupe n'a pas déjà de notes,... // ... NON: On fera le test sur les groupes à y associer seulement. // Ce sont les autres groupes qui seraient susceptibles de voir leurs notes disparaitre echo "
[-> fusionner le groupe avec un ou des groupes existants]"; // AJOUTER UN TEST: sur le fait que le groupe est vide... //echo "
[-> scinder le groupe]"; echo "

\n"; } else if ($mode == "regroupement") { echo "\n"; echo "

Sélectionnez les classes auxquelles appartient le regroupement :"; //$call_data = mysql_query("SELECT * FROM classes ORDER BY classe"); //$sql="SELECT * FROM classes c, periodes p WHERE p.id_classe=c.id AND MAX(p.num_periode)='".get_period_number($id_classe)."' ORDER BY classe;"; $sql="SELECT * FROM classes ORDER BY classe;"; //echo "$sql
"; $call_data = mysqli_query($GLOBALS["mysqli"], $sql); $nombre_lignes = mysqli_num_rows($call_data); if ($nombre_lignes != 0) { $i = 0; $tmp_tab_classe=array(); $tmp_tab_id_classe=array(); while ($i < $nombre_lignes){ $id_classe_temp=old_mysql_result($call_data, $i, "id"); $classe=old_mysql_result($call_data, $i, "classe"); if (get_period_number($id_classe_temp) == get_period_number($id_classe)) { $tmp_tab_classe[]=$classe; $tmp_tab_id_classe[]=$id_classe_temp; } $i++; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; //$nb_class_par_colonne=round($nombre_lignes/3); $nb_class_par_colonne=round(count($tmp_tab_classe)/3); for($i=0;$i0)&&(round($i/$nb_class_par_colonne)==$i/$nb_class_par_colonne)){ echo "\n"; } $id_classe_temp=$tmp_tab_id_classe[$i]; $classe=$tmp_tab_classe[$i]; //echo "
$classe\n"; echo " onchange=\"checkbox_change_classe('classe_".$id_classe_temp."'); changement();\""; echo " />\n"; if (in_array($id_classe_temp, $reg_clazz)){ // Pour contrôler les suppressions de classes. // On conserve la liste des classes précédemment cochées: echo "\n"; } echo "
\n"; } //echo "

\n"; echo "
\n"; // On ne propose de fusionner le groupe avec un/des groupes existants que si le groupe n'a pas déjà de notes,... // ... NON: On fera le test sur les groupes à y associer seulement. // Ce sont les autres groupes qui seraient susceptibles de voir leurs notes disparaitre echo "

[-> fusionner le groupe avec un ou des groupes existants]"; echo "

\n"; } else { echo "

Aucune classe définie !

\n"; } } //-- Fin classes ?> Visibilité de l'enseignement sur :
\n"; for($loop=0;$loop
\n"; } echo "

Création de sous-groupes :


en fractionnant l'enseignement en  groupes
d'élèves rangés par ordre 
avec des suffixes 
visibles sur
"; for($loop=0;$loop
\n"; } echo "

NOTE : Ce sont de nouveaux groupes (à part entière), mais créés avec les mêmes professeurs, des noms (au suffixe près) et au partage des élèves près.

"; // +++++++++++++++++++++++++++++++++ // 20160417 $sql="SELECT * FROM nomenclature_modalites_election;"; $res_nme=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_nme)>0) { $cpt_mod=0; $tab_non_assoc=array(); echo "

Modalités associées à cet enseignement :

"; $cpt_code_modalite_elect=0; while($lig_nme=mysqli_fetch_object($res_nme)) { $tab_autres_nomenclatures=array(); $sql="SELECT DISTINCT mm.* FROM matieres m, mef_matieres mm WHERE mm.code_modalite_elect='".$lig_nme->code_modalite_elect."' AND mm.code_matiere=m.code_matiere AND m.matiere='".$current_group["matiere"]["matiere"]."' AND mm.mef_code IN (SELECT e.mef_code FROM eleves e, j_eleves_groupes jeg WHERE e.login=jeg.login AND jeg.id_groupe='".$id_groupe."');"; //echo "$sql
"; $res_mm=mysqli_query($mysqli, $sql); if(mysqli_num_rows($res_mm)>0) { /* echo " "; */ echo $lig_nme->libelle_court." (".$lig_nme->libelle_long.")"; /* $sql="SELECT DISTINCT jgem.login FROM j_groupes_eleves_modalites jgem WHERE jgem.code_modalite_elect='".$lig_nme->code_modalite_elect."' AND jgem.id_groupe='".$id_groupe."';"; */ $sql="SELECT DISTINCT jgem.login FROM j_groupes_eleves_modalites jgem, j_eleves_groupes jeg WHERE jgem.code_modalite_elect='".$lig_nme->code_modalite_elect."' AND jgem.id_groupe='".$id_groupe."' AND jeg.id_groupe=jgem.id_groupe AND jeg.login=jgem.login;"; //echo "$sql
"; $res_ele_mod=mysqli_query($mysqli, $sql); $eff_ele_mod=mysqli_num_rows($res_ele_mod); $sql="SELECT DISTINCT jeg.login FROM matieres m, mef_matieres mm, j_eleves_groupes jeg, eleves e WHERE mm.code_modalite_elect='".$lig_nme->code_modalite_elect."' AND mm.code_matiere=m.code_matiere AND mm.mef_code=e.mef_code AND e.login=jeg.login AND jeg.id_groupe='".$id_groupe."';"; //echo "$sql
"; $res_ele_mod2=mysqli_query($mysqli, $sql); $eff_ele_mod2=mysqli_num_rows($res_ele_mod2); echo " ($eff_ele_mod/$eff_ele_mod2)"; echo "
"; $cpt_code_modalite_elect++; } /* else { // Remplir un tableau des modalités non associées $tab_non_assoc[$lig_nme->code_modalite_elect]['libelle_court']=$lig_nme->libelle_court; $tab_non_assoc[$lig_nme->code_modalite_elect]['libelle_long']=$lig_nme->libelle_long; } */ } if($cpt_code_modalite_elect==0) { echo "Aucune modalité élection de la matière ".$current_group["matiere"]["matiere"]." n'est associée aux MEFs des élèves de cet enseignement.
"; } /* // Parcourir le tableau des modalités non associées pour proposer l'ajout via un SELECT. if(count($tab_non_assoc)>0) { echo " "; } */ echo "
"; } // +++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++ $sql="SELECT 1=1 FROM edt_corresp2;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $chaine_anomalie_corresp_edt=""; $sql="SELECT * FROM edt_corresp2 WHERE id_groupe='$id_groupe';"; $res_edt=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_edt)>0) { $lig_edt=mysqli_fetch_object($res_edt); //onclick=\"return confirm_abandon (this, change, '$themessage')\" echo "

Regroupement EDT associé : ".htmlentities($lig_edt->nom_groupe_edt)." Editer"; } else { echo "

Aucun regroupement EDT n'est associé à ce groupe Gepi Associer."; } $texte_infobulle=""; $tab_assoc=array(); $sql="SELECT * FROM edt_corresp2 WHERE id_groupe='$id_groupe' ORDER BY nom_groupe_edt;"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)>0) { while($lig2=mysqli_fetch_object($res2)) { $tab_assoc[]=$lig2->nom_groupe_edt; } } if(count($tab_assoc)>1) { $texte_infobulle.="

ANOMALIE : Le groupe/enseignement Gepi est associé à ".count($tab_assoc)." regroupements EDT ("; $chaine_anomalie_corresp_edt="Anomalie0) { $texte_infobulle.=", "; } $texte_infobulle.=htmlentities($tab_assoc[$loop]); $chaine_anomalie_corresp_edt.=" - ".$tab_assoc[$loop]."\n"; } $texte_infobulle.=").
Il ne devrait y en avoir qu'un.
Choisissez ci-dessous le bon et validez.

"; $chaine_anomalie_corresp_edt.="Il ne devrait y en avoir qu'un.\" />"; } echo $chaine_anomalie_corresp_edt."

"; $lignes_options=" "; $sql="SELECT * FROM edt_corresp WHERE champ='groupe' ORDER BY nom_edt;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); while($lig=mysqli_fetch_object($res)) { $selected=""; if(in_array($lig->nom_edt, $tab_assoc)) { $selected=" selected"; } $lignes_options.=" "; } $texte_infobulle.="
".add_token_field(true)."

Regroupement EDT à associer :

"; $tabdiv_infobulle[]=creer_div_infobulle("div_regroupement_edt","Regroupement EDT associé","",$texte_infobulle,"",40,0,'y','y','n','n'); echo " "; } // +++++++++++++++++++++++++++++++++ echo "
\n"; //================================================= // Matière echo "
\n"; echo "

Sélectionnez la matière enseignée à ce groupe : "; $query = mysqli_query($GLOBALS["mysqli"], "SELECT matiere, nom_complet FROM matieres ORDER BY matiere"); $nb_mat = mysqli_num_rows($query); echo ""; echo $message_nom_sur_bulletin3; echo "

\n"; //================================================= echo "

Cochez les professeurs qui participent à cet enseignement :

\n"; echo "
\n"; afficher_liste_profs_du_groupe($reg_matiere); echo "
\n"; if (count($prof_list["list"]) != "0") { echo "\n"; } $sql="SELECT 1=1 FROM utilisateurs WHERE statut='professeur';"; $res_nb_prof=mysqli_query($GLOBALS["mysqli"], $sql); $nb_prof_etab=mysqli_num_rows($res_nb_prof); echo "
\n"; echo "
\n"; $avec_lien_edit_group="y"; $tab_autres_groupes=tableau_html_groupe_matiere_telle_classe($id_classe, $reg_matiere, array($id_groupe)); if($tab_autres_groupes!="") { echo "

Il existe d'autres enseignements dans la même matière pour cette classe :

\n"; echo $tab_autres_groupes; echo "

Répartir les élèves entre plusieurs groupes

"; } echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; //============================ // MODIF: boireaus if(isset($chemin_retour)){ echo "\n"; } if(isset($ancre)){ echo "\n"; } echo "

\n"; echo "
\n"; echo "\n"; echo "
\n"; echo "


NOTE : Le nom qui apparait dans la colonne matières des bulletins peut être :

  • le nom complet de la matière$choix_nom_sur_bulletin3
  • le nom court de l'enseignement (\"groupe\" dans le vocabulaire Gepi)$choix_nom_sur_bulletin1
  • la description de l'enseignement (\"groupe\" dans le vocabulaire Gepi)$choix_nom_sur_bulletin2

Ce paramétrage peut être effectué dans la page Gestion générale/Configuration générale.

\n"; require("../lib/footer.inc.php"); ?>